The present invention is directed, in general, to data conversion and, more specifically, to a system and method for transcoding streaming data and a telecommunications infrastructure incorporating the system or the method.
Almost from their beginning, computer systems were incompatible with each other. The computer systems used different formats to store and communicate data. Users had to develop individual conversion routines to convert the formats used by the other systems into a format that their computer system could process. Soon thereafter, companies developed utility programs that contained a collection of these conversion routines. The utility programs allowed the user to select and execute a single conversion routine from a list of conversion routines.
With the advent of multimedia data processing, the problem of information incompatibility became more prevalent and complex. Instead of only dealing with the incompatibility of computer formats for the same type of information, multimedia environments added incompatibility between multiple types of information. For example, within multimedia environments there may be voice-mail formats, video formats, audio formats, facsimile formats, and computer data formats.
Later-developed conversion programs allowed users to convert from one multimedia format to another multimedia format. However, these conversion programs still required the user to know ahead of time the type of conversion required for each step of the conversion process. If a user wants to convert a voice mail message, the user might start with a speech-to-text conversion program that converts the voice mail message to text. Suppose storage space is critical, then the user would use another program to compress the newly created text file.
Further suppose the user determines that the previously stored message is confidential. The user would then use a program to decompress the file. Then the user would use another program to encrypt the text message. Last but not least, the user would use still another program to compress the encrypted file.
Now the user wants to send the file to another person on a different computer system. This brings a problem on the recipient. The recipient is required to determine which conversion programs to use and in what order. However, the recipient may not have a particular, required conversion routine. The recipient has to determine what conversion programs are available and what type of source formats the programs can convert. Then the recipient is forced to determine what combination of conversion programs can be used to convert from the source format to the desired destination format. Once the recipient has done these steps several times, the recipient has to manually step through each conversion routine until the desired destination format is reached.
Another complexity added to multimedia data conversion was streaming data. Streaming data is the continuous transmission of data over a network. An example of a use of streaming data was the transmission of streaming video and audio over the Internet. However, conversion programs did not convert streaming data as it was received. The conversion programs first collected the data and then converted all the data at once.
What is needed in the art is a way to manage this type of multiple information incompatibility and a better way to perform multimedia conversions.
To address the above-discussed deficiencies of the prior art, the present invention provides a dynamically configurable system and method for transcoding streaming data and a telecommunications infrastructure incorporating the system or the method. In one embodiment, the system includes: (1) first, second and third streaming conversion modules capable of converting data stream portions between internal data formats and (2) a transcoding controller, associated with the first, second and third streaming conversion modules, that determines source and destination data formats of the data stream and arranges ones of the first, second and third streaming conversion modules in an optimal series to convert portions of the data stream from the source data format through at least one of the internal data formats to the destination data format.
The present invention therefore introduces a dynamically configurable transcoder system wherein a controller selects and arranges conversion modules in a series to provide conversion from a given source data format to a given destination data format. The transcoding controller selects and places the modules into the series in an order that optimizes conversion (according to speed, cost, fidelity, load or by any other desired measure). Thus, if multiple conversion paths are possible, the transcoding controller selects the most optimal path, according to pertinent measurements.
In one embodiment of the present invention, the system further includes a configurable buffer, the transcoding controller further employing the configurable buffer to buffer the portions between the ones of the first, second and third conversion modules in the optimal series. The configurable buffer may be a shared memory space logically between the selected conversion modules. The buffer, while not necessary to the present invention, is advantageous when conversion speeds or units (to be defined) differ between adjacent modules.
In one embodiment of the present invention, the portions are frames of the data stream. In an embodiment to be illustrated and described, the portions may be of any size, from byte to complete stream. The portions may also vary in size.
In one embodiment of the present invention, the portions are less than a conversion unit, each of the first, second and third conversion modules internally buffering the portions to amass a conversion unit. A xe2x80x9cconversion unitxe2x80x9d is defined as the smallest unit of data that a particular conversion module can convert at a time. Many speech compression algorithms work on 40 ms portions of datastreams. Text-to-speech algorithms typically operate on a syllable or a word at a time. The conversion modules of the present invention therefore may be adapted to accept portions of any length and amass portions internally until they have enough data (a conversion unit""s worth) before converting the data.
In one embodiment of the present invention, the first, second and third conversion modules are selected from the group consisting of: (1) data compression modules, (2) data decompression modules, (3) data encryption modules, (4) data decryption modules, (5) data format conversion modules, (6) data media conversion modules and (7) data signal processing modules. Those skilled in the art are aware of the many conventional algorithms for data compression/decompression and encryption/decryption. The present invention is adapted to operate with any of these or any later developed algorithm. Data format conversion is directed to changing the format of the data, rather than the data itself. Data media conversion involves changing the conveyance of the data, such as text-to-speech conversion or speech recognition.
In one embodiment of the present invention, the transcoding controller arranges ones of the first, second and third streaming conversion modules in at least two optimal series concurrently to convert portions of the data stream from the source data format through at least two of the internal data formats to at least two destination data formats. Thus, a data stream in a given input data format may be concurrently converted into two or more different output data format. Of course, this need not be the case.
In one embodiment of the present invention, the first, second and third conversion modules are embodied in instantiable objects, the transcoding controller instantiating the ones of the first, second and third conversion modules to arrange the ones of the first, second and third streaming conversion modules in the optimal series. In an embodiment to be illustrated and described, the conversion modules and the transcoding controller are sequences of instructions, organized into objects and executable in a general-purpose data processing and storage machine. Of course, the conversion modules may not be object-oriented and need not be embodied in software. They may instead be discrete or integrated digital or analog hardware.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.